2
תגובות
אני משתמש בקוד הבא לביצוע סידור של מסד נתונים לפי סדר מסיים...
for ($i = $dataReader->rowCount;$i>=$aft;$i--) {
               
                $x = $i+1;
                $newSQL = "UPDATE `nbg` SET  `idx` = \"$x\" WHERE `nbg`.`idx` =\"$i\"";
                $command->setText($newSQL);
                if(!($command->query())) break;

            }

יצא לי לקרוא שלא כידי להשתמש בלולאות לביצוע שאילתות.
איך אפשר כאן לבתר על לולאה?

2 תשובות

avatar ענה משתמש_108598 ב 11 לפברואר 2012 #

לא משנה במקרה בPHPMYADMIN מצאתי את התשובה (יש שם אפשרות לראות איך הפקודות מתבצעות בPHP) אז הפקודה עבדה אם ;
ובאמת יש הבדל ממש גדול בבצועים
לפני: 0.147762
אחרי: 0.062702
(יותר מי פי 2)

avatar ענה intval ב 11 לפברואר 2012 #

באופן כללי סידור מחדש אפשר לעשות בשני שאילתות
למשל אני רוצה להעביר את קישור ID=5 להיות מקום שני בסדר

update table set order=order+1 where order >= 2
update table set order = 2 where id = 5